/**
 * 
 */
package org.tcp.client.pool;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Date;

/**
 * @author kucheng.liao@autonavi.com
 * @Date Oct 8, 2014
 */
public interface ITcpConnection {
	/**
	 * 获取输出数据流
	 * 
	 * @return
	 */
	public OutputStream getOutputStream() throws IOException;

	/**
	 * 获取输入数据流
	 * 
	 * @return
	 */
	public InputStream getInputStream() throws IOException;

	/**
	 * 关闭连接
	 */
	public void close();

	/**
	 * 获取最后使用时间
	 * 
	 * @return
	 */
	public Date getLastUseDate();

	/**
	 * 设定最后使用时间
	 * 
	 * @param date
	 * @return
	 */
	public void setLastUserDate(Date date);

	/**
	 * 销毁连接
	 */
	public void destory() throws IOException;

	/**
	 * 获取连接池
	 * 
	 * @return
	 */
	public Pool pool();

	/**
	 * 获取心跳测试次数
	 * 
	 * @return
	 */
	public int getHeatTestTime();

	/**
	 * 设置心跳次数
	 * 
	 * @param time
	 */
	public void addHeatTestTime(int time);
}
